ubuntu server下搭建svn服务以及迁移的方法
ubuntu server下搭建svn服务以及迁移的方法,感兴趣的朋友可以参考下。
搭建SVN服务
采用apache+svn,http访问方式。
先确定安装了apache,没有安装则用以下命令:
复制代码 代码如下:
sudo apt-get install apache2
然后安装subversion及svn-apache连接库:
复制代码 代码如下:
sudo apt-get install subversion
sudo apt-get install libapache2-svn
增加svn用户组,用于管理svn,并加入到www-data的apache组:
复制代码 代码如下:
sudo addgroup subversion
sudo usermod -G subversion -a www-data
然后可以创建svn项目仓库了:
复制代码 代码如下:
# 一般可以将项目仓库建立到/home/svn目录
# 假设项目名为myproject,先建立空目录
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
#创建为svn项目,使用以下命令
$ sudo svnadmin create /home/svn/myproject
# 然后才赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
# 如果命令顺序搞错,可能会报错,请参照官方wiki
$ sudo chmod -R g+rws myproject
最后是配置apache,用http协议访问svn服务:
复制代码 代码如下:
# 在安装了libapache2-svn时会自动生成该文件
$ sudo vi /etc/apache2/mods-available/dav_svn.conf
编辑dav_svn.conf配置文件,内有注释,可以去掉前面的#使语句生效,最后内容大概如下即可:
复制代码 代码如下:
<Location /svn> #/svn表示
DAV svn
SVNParentPath /home/svn #配置仓库父目录
AuthType Basic
AuthName "ToFishes Project Svn"
AuthUserFile /etc/subversion/passwd #svn用户文件
AuthzSVNAccessFile /etc/subversion/authz #授权访问文件
Require valid-user
</Location>
svn用户文件/etc/subversion/passwd 和 授权访问文件/etc/subversion/authz是不存在的,需要手动创建。
svn用户文件可以通过命令创建:
复制代码 代码如下:
#首次创建需要加-c选项,同时可以增加一个svn用户
#执行该命令会提示为新用户user_name设置密码
sudo htpasswd -c /etc/subversion/passwd user_name
#以后添加新用户,需要去掉-c选项,否则以前的用户就被覆灭了
sudo htpasswd /etc/subversion/passwd new_name
用户是可以添加了,同时需要管理授权,用于多个svn项目,划分不同的用户组:
用vi /etc/subversion/authz编辑授权文件,无文件则编辑并保存后会自动创建,无需担心。
授权文件内容格式如下:
复制代码 代码如下:
#用户组指令
[groups]
#格式为 组名 = 用户名1,用户名2
group1 = user1, user2
group2 = user1, user3
#other groups...
#格式为 svn项目的仓库名:对应目录
[svn_repository_name:/]
#设置组的权限,r=read, w=write
@group1 = rw
[svn_repository_name2:/web/css]
@group2 = rw
改完最后重启apache : sudo /etc/init.d/apache2 restart。这样工作就全部完成了。
其中访问地址是什么呢,只要当前服务器已经绑定了一个域名,并且在apache中启用了此域名的虚拟主机。
比如能正常访问 ym97.comcourse.html, 那么svn项目的访问地址就是 项目名。
迁移SVN仓库
最近服务器硬盘坏道导致频繁自动关机,所以需要迁移SVN到新的服务器去。
用以上同样的方法在新服务搭建好SVN,接着导出原svn仓库资料,再导入到新svn仓库即可。
1. 在老服务器进行导出操作:
$ svnadmin dump 原先的repos的目录路径(/repository/directory) > dumpfile.svndump
2. 在新服务器将dumpfile.svndump导入到新的repository 目录中。
$ svnadmin load 新建的repos的目录路径(/repository/directory) < dumpfile.svndump
如果项目仓库比较多,附上一个批处理导出命令,导入的改改就行了:
复制代码 代码如下:
#!/bin/bash
cd /home/svn
filelist=`ls` #符号·不是单引号,而是位于键盘感叹号左侧
for fname in $filelist
do
svnadmin dump $fname > /home/svndump/${fname}.svndump
#echo $fname
#最好是root用户执行,否则要sudo了
done
那么本地项目svn的检出及更新地址就需要变更了, 使用TortoiseSVN工具的右键找到Relocate菜单就可以了,而使用命令的话如下:
复制代码 代码如下:
#在项目目录查看下仓库地址
$ svn info
#回显中的URL项就是旧版地址oldpath
#然后切换到新版地址newpath即可
$ svn switch --relocate http://newpath
#查看信息确认下
$ svn info
参考内容:
https://help.ubuntu.com/community/Subversion
相关热词: 方法
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jq/jc/7512.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
PHP识别相片是否是颠倒的
时间:2020-12-28
-
python编程有哪些ide
时间:2020-12-28
-
python开发工程师是做什么
时间:2020-12-28
-
php构造函数的作用
时间:2020-12-28
-
php怎么跟数据库连接
时间:2020-12-28
-
php实现顺序线性表
时间:2020-12-28
-
Python多重继承中的菱形继
时间:2020-12-28
-
php中break的作用
时间:2020-12-28
热门文章
-
php中常用的正则表达式使用方法
时间:2020-12-25
-
asp与php区别是什么?
时间:2020-12-27
-
PHP识别相片是否是颠倒的,并且重新摆正
时间:2020-12-28
-
Yii授权之基于角色的存取控制 (RBAC)
时间:2020-12-23
-
php的一键安装包有哪些 php环境搭建
时间:2020-12-19
-
php实现对图片对称加解密(适用身份证加
时间:2020-12-25
-
php如何理解面向对象
时间:2020-12-28
-
超详细分析php docker的原理及作用
时间:2020-12-27
-
Python控制Excel实现自动化办公
时间:2020-12-23
-
session的作用是什么
时间:2020-12-25
